package hcn.protocol.brandnew.zhenliao.huizhen;

import lombok.Data;
import javax.xml.bind.annotation.*;
import java.util.List;
import hcn.protocol.brandnew.BaseRequest;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import ctd.util.xml.jaxb.DateTimeAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;


/**
 * 会诊记录信息查询-消息响应(成功) - ODS_03100012_SUC
 *
 * @author enjoyLife
 */
@Data
@XmlRootElement(name = "Data")
@XmlAccessorType(XmlAccessType.FIELD)
public class GetConsultationInformationResponse {

    /**
     * 返回数据列表
     */
    @XmlElementWrapper(name = "RequestLists")
    @XmlElement(name = "RequestList")
    private List<RequestList> requestLists;

    @Data
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class ConsultanList {

        /**
         * 会诊医生代码
         */
        @XmlElement(name = "ConsultationDoctorId")
        private String consultationDoctorId;
        /**
         * 会诊医生名称
         */
        @XmlElement(name = "ConsultationDoctorName")
        private String consultationDoctorName;
        /**
         * 会诊意见
         */
        @XmlElement(name = "ConsultationOpinion")
        private String consultationOpinion;
        /**
         * 会诊时间
         */
        @XmlElement(name = "ConsultationDateTime")
        @XmlJavaTypeAdapter(DateTimeAdapter.class)
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date consultationDateTime;
        /**
         * 会诊机构代码
         */
        @XmlElement(name = "ConsultationOrganization")
        private String consultationOrganization;
        /**
         * 会诊机构名称
         */
        @XmlElement(name = "ConsultationOrganizationName")
        private String consultationOrganizationName;
        /**
         * 会诊科室代码
         */
        @XmlElement(name = "ConsultationDepartmentId")
        private String consultationDepartmentId;
        /**
         * 会诊科室名称
         */
        @XmlElement(name = "ConsultationDepartmentName")
        private String consultationDepartmentName;
        /**
         * 会诊者类别
         */
        @XmlElement(name = "ConsultantType")
        private String consultantType;
    }

    @Data
    @XmlAccessorType(XmlAccessType.FIELD)
    public static class RequestList {

        /**
         * 业务系统患者档案ID
         */
        @XmlElement(name = "SourcePatientId")
        private String sourcePatientId;
        /**
         * 会诊单ID
         */
        @XmlElement(name = "ElectronicRequestNoteId")
        private String electronicRequestNoteId;
        /**
         * 会诊单号
         */
        @XmlElement(name = "ElectronicRequestNoteNo")
        private String electronicRequestNoteNo;
        /**
         * 会诊状态
         */
        @XmlElement(name = "Status")
        private String status;
        /**
         * 会诊目的
         */
        @XmlElement(name = "ConsultationPurpose")
        private String consultationPurpose;
        /**
         * 会诊类别
         */
        @XmlElement(name = "ConsultationType")
        private String consultationType;
        /**
         * 住院号码
         */
        @XmlElement(name = "HospizationId")
        private String hospizationId;
        /**
         * 医疗机构组织机构代码
         */
        @XmlElement(name = "VisitOrganization")
        private String visitOrganization;
        /**
         * 年龄（岁）
         */
        @XmlElement(name = "Age")
        private String age;
        /**
         * 性别代码
         */
        @XmlElement(name = "Sex")
        private String sex;
        /**
         * 患者姓名
         */
        @XmlElement(name = "Name")
        private String name;
        /**
         * 患者病情及诊疗情况
         */
        @XmlElement(name = "TreatmentProcess")
        private String treatmentProcess;
        /**
         * 申请医生名称
         */
        @XmlElement(name = "DoctorName")
        private String doctorName;
        /**
         * 申请时间
         */
        @XmlElement(name = "ConsultationApplyDateTime")
        @XmlJavaTypeAdapter(DateTimeAdapter.class)
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date consultationApplyDateTime;
        /**
         * 申请科室代码
         */
        @XmlElement(name = "DepartmentId")
        private String departmentId;
        /**
         * 申请科室名称
         */
        @XmlElement(name = "DepartmentName")
        private String departmentName;
        /**
         * 紧急标志
         */
        @XmlElement(name = "IsEmergency")
        private String isEmergency;
        /**
         * 诊断信息
         */
        @XmlElement(name = "DiagnoseName")
        private String diagnoseName;
        /**
         * 身份证件号码
         */
        @XmlElement(name = "IdCard")
        private String idCard;
        /**
         * 门（急）诊号
         */
        @XmlElement(name = "ClinicId")
        private String clinicId;
        /**
         * 医生标识
         */
        @XmlElement(name = "DoctorId")
        private String doctorId;
        /**
         * 会诊受邀者列表
         */
        @XmlElementWrapper(name = "ConsultantLists")
        @XmlElement(name = "ConsultanList")
        private List<ConsultanList> consultantLists;
    }

}
